package com.aismy.admin.service;

import com.aismy.admin.dto.ArticleDTO;
import com.aismy.admin.entity.Article;
import com.aismy.admin.vo.ArticleVO;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.IService;

import java.util.List;


public interface ArticleService extends IService<Article> {
    /**
     * 创建文章
     */
    Long createArticle(ArticleDTO articleDTO, Long userId);
    
    /**
     * 更新文章
     */
    void updateArticle(ArticleDTO articleDTO, Long userId);
    
    /**
     * 删除文章
     */
    void deleteArticle(Long id, Long userId);
    
    /**
     * 获取文章详情
     */
    ArticleVO getArticleDetail(Long id);
    
    /**
     * 分页获取文章列表
     */
    Page<ArticleVO> getArticleList(Integer page, Integer size);
    
    /**
     * 获取用户的文章列表
     */
    Page<ArticleVO> getUserArticles(Long userId, Integer page, Integer size);

    /**
     * 获取最新文章列表
     * @param limit 获取数量
     * @return 文章列表
     */
    List<ArticleVO> getLatestArticles(int limit);
} 